﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS
{
    public partial class frmConfirmarSancion : Form
    {
        List<Sanciones> listaSanciones;
        Sanciones actual;
        int index = 0;
        int max;
        private static frmConfirmarSancion Instancia;
        public static frmConfirmarSancion onlyInstancia
        {
            get
            {
                if (Instancia == null || Instancia.IsDisposed)
                    Instancia = new frmConfirmarSancion();
                return Instancia;
            }
        }
        private frmConfirmarSancion()
        {
            InitializeComponent();
        }

        private void frmConfirmarSancion_Load(object sender, EventArgs e)
        {
            listaSanciones = DALSanciones.getSancionesPendientes();
            max = listaSanciones.Count - 1;
            if (listaSanciones.Count > 0)
            {
                actual = listaSanciones[index];
                cargarDatos();
            }
            else
            {
                MessageBox.Show("No existen solicitudes pendientes");
                
            }
        }
        private void cargarDatos()
        {
            
            dynamic tmp = DALCursos.getCursoById((int)actual.idCurso);
            lblCursos.Text = "Curso:" + tmp.año + "° " + tmp.division + "°";
            tmp = DALAlumnos.getAlumnoByIdAlumno((int)actual.idAlumno);
            lblAlumno.Text = "Alumno: " + tmp.Apellidos + ", " + tmp.nombres;
            lblFecha.Text = "Fecha: " + actual.fecha.Value.ToShortDateString();
            lblParteNro.Text = "Parte Nro: " + actual.parteNro.ToString();
            tmp = DALProfesores.getProfesorById((int)actual.idProfesor);
            lblSolicita.Text = "Solicita: " + tmp.apellidos + ", " + tmp.nombres;
            txtMotivo.Text = actual.Motivo;
            lblSolicitud.Text = "Solicitud: " + (index + 1).ToString() + "/" + (max + 1).ToString(); 
            dgvSancionesAnt.DataSource = DALSanciones.getSancionesByIdAlumno((int)actual.idAlumno);
            dgvSancionesAnt.Refresh();
            this.Refresh();
        }
       
        private void btnNext_Click(object sender, EventArgs e)
        {
            if (index + 1 <= max)
                index++;
            actual = listaSanciones[index];
            cargarDatos();
        }

        private void btnPrev_Click(object sender, EventArgs e)
        {
            if (index > 0)
                index--;
            actual = listaSanciones[index];
            cargarDatos();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (DALSanciones.confirmarSancion(actual.idSancion, (int)nroSancion.Value) == true)
                MessageBox.Show("La sancion ha sido aplicada con exito");
            cargarDatos();
        }

        private void btnNovedades_Click(object sender, EventArgs e)
        {
            frmNovedadesRecientes.onlyInstancia.alumno = DALAlumnos.getAlumnoByIdAlumno((int)actual.idAlumno);
            frmNovedadesRecientes.onlyInstancia.ShowDialog();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (DALSanciones.anularSancion(actual.idSancion) == true)
            {
                MessageBox.Show("La solicitud ha sido anulada");
                
                cargarDatos();
            }
            else
                MessageBox.Show("Se ha producido un error, intente luego");
        }

     
    }
}
